/* 
自定义对象插件
必须得有一个install方法(回调函数), 方法接收参数: Vue
我们需要在install方法去扩展Vue的功能
*/
import Header from './Header.vue'
import dayjs from 'dayjs'

const myPlugin = {
  install (Vue) {
    // 给Vue原型添加方法
    Vue.prototype.$test = function () {
      console.log('vm/组件对象 $test()')
    }
    // 给Vue添加静态方法   ==> 全局API
    Vue.test = function () {
      console.log('Vue.test()')
    }
    // 注册全局组件
    Vue.component(Header.name, Header)
    // 注册全局指令
    Vue.directive('upper-text', (el, binding) => {
      console.log('upper-text', binding)
      // 向标签中插入全大写的文本
      el.innerText = binding.value.toUpperCase()
    })
    // 注册全局过滤器
    Vue.filter('date-format', (value, formatStr='YYYY-MM-DD HH:mm:ss') => {
      // return dayjs(value).format(formatStr || 'YYYY-MM-DD HH:mm:ss')
      return dayjs(value).format(formatStr)
    })
  }
}

export default myPlugin